#!/bin/bash
git log --no-merges --use-mailmap --format="%ad %aN" --date=short --numstat \
| awk '
  # 处理日期行
  /^[0-9]{4}-[0-9]{2}-[0-9]{2}/ {
    date = $1
    author = substr($0, 12)  # 提取作者名（考虑空格）
    next
  }
  
  # 处理numstat数据行（添加/删除行数）
  NF == 3 && $1 ~ /^[0-9]+$/ && $2 ~ /^[0-9]+$/ {
    add[date][author] += $1
    del[date][author] += $2
    total_add[date] += $1
    next
  }
  
  # 结束处理：输出CSV
  END {
	print "个人当日的贡献情况"
    for (date in add) {	
	  
      n = asorti(add[date], authors)  # 按作者名排序
      for (i = 1; i <= n; i++) {		
        author = authors[i]
        adds = add[date][author]
        dels = del[date][author]
        ratio = total_add[date] ? (adds / total_add[date] * 100) : 0
        printf "%s  作者：\"%s\",  添加行数：%d,  删除行数：%d,  贡献度：%.2f%%\n", date, author, adds, dels, ratio
      }
    }
  }
' \
| sort -t, -k1  # 按日期排序